using Catastrophe.Common.FileM;
using CommunityToolkit.Mvvm.ComponentModel;
using System.Collections.Generic;

namespace Catastrophe.BasePC.UI.File
{
	[FileName("CdcatastropheConfig.json")]
	public class FileConfigEntity 
    {
        /// <summary>
        /// 菜单栏是否可折叠
        /// </summary>
        [FileConfig("SystemStyle", "菜单栏是否可折叠")]
		public bool IsTreeNodeCollapse { get; set; } = true;

        /// <summary>
        /// 菜单栏宽度
        /// </summary>
        [FileConfig("SystemStyle", "菜单栏宽度")]
        public int MenuWidth { get; set; } = 200;

        /// <summary>
        /// 登录窗口大小
        /// </summary>
        [FileConfig("980,584", "登录窗口大小")]
        public string LoginFrmSize { get; set; }
        /// <summary>
        /// 关闭所有按钮可见
        /// </summary>
        [FileConfig("SystemStyle", "关闭所有按钮可见")]
		public bool CloseAllVisible { get; set; } = true;

		/// <summary>
		/// 菜单管理按钮可见
		/// </summary>
		[FileConfig("SystemStyle", "菜单管理按钮可见")]
		public bool MenuManagerVisible { get; set; } = true;

		
        /// <summary>
        /// 系统配置按钮可见
        /// </summary>

        [FileConfig("SystemStyle", "系统配置按钮可见")]
		public bool SystemConfigVisible { get; set; } = true;

        [FileConfig("SystemStyle", "用户名可见")]
		public bool UserVisible { get; set; } = true;

        [FileConfig("SystemStyle", "所有按钮可见")]
		public bool AllBtnVisible { get; set; } = true;

        [FileConfig("SystemStyle", "标题栏可见")]
		public bool TittleVisible { get; set; } = true;

		[FileConfig("SystemStyle", "标题尺寸")]
		public byte TittleFontSize { get; set; } = 20;

		[FileConfig("SystemStyle", "标题栏高")]
		public int TittleHeight { get; set; } = 30;

		[FileConfig("SystemStyle", "Logo容器宽")]
		public int LogoWidth { get; set; }

		[FileConfig("SystemStyle", "Logo图片名称")]
		public string LogoImgName { get; set; }

		[FileConfig("SystemStyle", "Flex样式设置是否显示")]
		public bool FlexStyleVisible { get; set; }

		[FileConfig("SystemStyle", "工具栏可见")]
		public bool ToolStripVisible { get; set; }

		[FileConfig("SystemStyle", "底部Panel是否可见")]
		public bool BottomPanelVisible { get; set; }

		[FileConfig("SystemStyle", "底部Panel高")]
		public int BottomPanelHeight { get; set; }

		[FileConfig("SystemStyle", "标签栏可关闭")]
		public bool TabCanClose { get; set; }

		[FileConfig("SystemStyle", "标签栏可下拉选择")]
		public bool TabShowList { get; set; }

		[FileConfig("SystemStyle", "主控窗体状态")]
		public string WinState { get; set; }

		[FileConfig("SystemStyle", "主控窗体边框样式")]
		public string FormBorderStyle { get; set; }

		[FileConfig("SystemStyle", "主控窗体自定义大小(WinState=Normal下生效)")]
		public string CustomSize { get; set; }

		[FileConfig("SystemStyle", "菜单栏宽度是否为百分百设定，百分百设定下通过Form的SizeChanged自动调节")]
		public bool IsMenuWidthPercent { get; set; }

		[FileConfig("SystemStyle", "菜单栏宽度百分百设定")]
		public int MenuWidthPercent { get; set; }

		[FileConfig("SystemStyle", "主窗体能否拖动")]
		public bool IsFormAllowDrag { get; set; }

		[FileConfig("SystemStyle", "主窗体能否调整尺寸")]
		public bool IsFormAllowResize { get; set; }

		[FileConfig("SystemStyle", "标题背景色", IgnoreWrite = true)]
		public string TittleBackround { get; set; }

		[FileConfig("SystemStyle", "标题背景色", IgnoreWrite = true)]
		public string TittleForeround { get; set; }

		[FileConfig("SystemStyle", "标题前景色", IgnoreWrite = true)]
		public string MenuBackround { get; set; }

		[FileConfig("SystemStyle", "菜单背景色", IgnoreWrite = true)]
		public string MenuForeround { get; set; }

		[FileConfig("SystemStyle", "Tab背景色", IgnoreWrite = true)]
		public string TabAreaBackround { get; set; }

		[FileConfig("SystemStyle", "Tab前景色", IgnoreWrite = true)]
		public string TabAreaForeround { get; set; }

		[FileConfig("SystemStyle", "ToolBar背景色", IgnoreWrite = true)]
		public string ToolbarBackround { get; set; }

		[FileConfig("SystemStyle", "ToolBar前景色", IgnoreWrite = true)]
		public string ToolbarForeround { get; set; }

		[FileConfig("SystemStyle", "样式", IgnoreWrite = true)]
		public string VisualStyle { get; set; }

		[FileConfig("SystemStyle", "Tab样式", IgnoreWrite = true)]
		public string TabVisualStyle { get; set; }

		[FileConfig("SystemStyle", "授权到期处理", IgnoreWrite = true)]
		public string LicExpirExcute { get; set; } = "Exist";


		[FileConfig("SystemStyle", "标题栏时钟显示")]
		public bool ClockVisible { get; set; }

        /// <summary>
        /// 框架样式
        /// </summary>
        [FileConfig("SystemStyle", "框架样式")]
		public string FrameVisualStyle { get; set; }
        /// <summary>
        /// 加载的程序集
        /// </summary>
        [FileConfig("Catastrophe.BasePC.UI;Catastrophe.Log;Catastrophe.DevAuto.Wf", "加载的程序集")]
        public string ModuleIniNameSpace { get; set; }

        /// <summary>
        /// 加载的程序集
        /// </summary>
        public List<string> ModuleIniNameSpaceSplit { get; set; }

      

        /// <summary>
        /// 主窗口大小
        /// </summary>
        [FileConfig("1366, 768", "")]
        public string SystemCacheFrm { get; set; }

        [FileConfig("欢迎登录系统", "")]
        public string LoginText { get; set; }

        [FileConfig("智能管控系统", "")]
        public string LoginTittle { get; set; }

        [FileConfig("", "")]
        public string LoginLayout { get; set; }

        [FileConfig("", "")]
        public string LoginBackroundImg { get; set; }

        [FileConfig("", "")]
        public ushort LoadInterval { get; set; }

        [FileConfig("", "")]
        public float OpacityIncrement { get; set; }

        [FileConfig("", "")]
        public string LoadBackroundImg { get; set; }

        [FileConfig("", "")]
        public string MainFormTittle { get; set; }

        [FileConfig("WR-WH", "")]
        public string MachineUserName { get; set; } = "";


        [FileConfig("IsAttached", "")]
        public string DevMode { get; set; }

        [FileConfig("1", "")]
        public string SoftId { get; set; }

        [FileConfig("1", "")]
        public int MsgTipType { get; set; }

        [FileConfig("1000", "")]
        public int MsgShowInterval { get; set; }

        [FileConfig("10", "")]
        public int MsgCapacity { get; set; }

		public FileConfigEntity()
		{
			ModuleIniNameSpace = "Catastrophe.BasePC.UI;Catastrophe.Log;Catastrophe.Initialize;Catastrophe.Emgucv;CatastropheDemo";
			LoginFrmSize = "980,584";
            SystemCacheFrm = "1366,768";
			LoginTittle = "智能管控系统";
        }
    }
}
